package com.heima.freemarker.controller;

import com.heima.freemarker.FreemarkerApplication;
import com.heima.freemarker.entity.Student;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestTemplate;

import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;


@SpringBootTest(classes = FreemarkerApplication.class)
@RunWith(SpringRunner.class)
public class FreemarkerTest {
    @Autowired
    private Configuration configuration;

    /**
     * 通过模板文件，生成html文件
     */
    @Test
    public void test() throws IOException, TemplateException {
        //通过模板文件,生成模板对象,    模板对象存放的文件名
        Template template = configuration.getTemplate("freemarker.ftl");
       Map<String,Object> data = getData();
        /**
         * 合成
         * 第一个参数：模型数据，就是数据
         * 第二个参数：合成后的输出流
         * 文件的输出位置
         */
        template.process(data,new FileWriter("d:/index.html"));

    }

    /**
     * freemarke存放的是 姓名：${stu.name}
     *                  年龄：${stu.age}键值对,需要用Map接收
     * @return
     */
    public Map<String ,Object> getData(){
        Map<String ,Object>map =new HashMap<>();
        map.put("name","freemarker");

        Student stu =new Student();
        stu.setName("张三");
        stu.setAge(25);
        stu.setMoney(15000000f);
        map.put("stu",stu);
        return map;

    }



}
